package com.example.lucky.draw.user.handler;

import com.example.lucky.draw.user.protocol.po.UserLog;
import com.example.lucky.draw.user.service.IUserLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.reactive.function.server.ServerRequest;
import org.springframework.web.reactive.function.server.ServerResponse;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import static org.springframework.web.reactive.function.BodyInserters.fromPublisher;

@Component
public class UserLogHandler {

    @Autowired
    private IUserLogService userLogService;

    /**
     * 查询用户日志
     * ServerRequest:代表一个HTTP请求，包括请求头和请求参数。
     * ServerResponse:代表一个HTTP响应，包括响应头和响应体。
     */
    public Mono<ServerResponse> findAll(ServerRequest request){
        Flux<UserLog> logFlux = userLogService.findAll();
        /**
         * ServerResponse.ok():返回一个200 OK响应，并将Flux作为响应体。
         * fromPublisher():将Flux作为响应体，并指定响应体的类型为UserLog。
         * Spring WebFlux会自动将Flux转换为相应的响应格式，如JSON或XML,写入到响应体中。
         */
        return ServerResponse.ok().body(fromPublisher(logFlux, UserLog.class));

    }



}
